<template>
  <section class="jumbotron">
    <h3 class="jumbotron-heading">Search Github Users</h3>
    <div>
      <input
        type="text"
        placeholder="enter the name you search"
        v-model="keyword"
      />&nbsp;
      <button @click="searchUsers">Search</button>
    </div>
  </section>
</template>



<script>
import axios from "axios";
export default {
  name: "Search",
  data () {
    return {
      keyword: '',
    }
  },
  methods: {
    //使用全局事件总线在组件间传递数据
    searchUsers () {
      this.$bus.$emit('updateListData', {
        isFirst: false,//再也不会为true了
        isLoading: true,
        errMsg: '',
        users: []
      })//包装为一个对象，更清楚明了
      axios.get(`https://api.github.com/search/users?q=${this.keyword}`)//github提供的一个api，跨域问题已经在后端解决了
        .then(res => {
          console.log(res.data.items);
          this.$bus.$emit("updateListData", {
            isLoading: false,
            errMsg: '',
            users: res.data.items//传入数据
          });
        })
        .catch(e => {
          console.log(`请求失败:${e.message}`)
          this.$bus.$emit("updateListData", {
            isLoading: false,
            errMsg: e.message,
            users: [] //一定要清空用户数据，否则会有上次的残留
          });
        });
    }
  }
}

</script>

<style scoped>
</style>
